package com.qianya.weishi_server.utils;

import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType;
import org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl;

/**
 * <p>
 * mybatis-generator的类型自定义配置器，用来重新指定JDBC类型和Java类型如何转换，原来的映射规则可参考JavaTypeResolverDefaultImpl
 * </p>
 *
 * @author LLL
 * @since 2022-08-25
 */
public class MyJavaTypeResolver extends JavaTypeResolverDefaultImpl {

    public MyJavaTypeResolver() {
        super();
        this.typeMap.put(5, new JavaTypeResolverDefaultImpl.JdbcTypeInformation("SMALLINT", new FullyQualifiedJavaType(Integer.class.getName())));

        // 注意
        // MySQL中tinyint(1)等同与bit，Java中会被当作Boolean类型，tinyint 可以使用int来接受也可以用boolean来接受。应避免使用，或者在数据库连接 url 后面加上参数: tinyInt1isBit=false
        // 可用tinyint(4)，Mysql数据类型括号内一般为显示长度不为存储长度，tinyint(1) 和 tinyint(4)中的1和4只有字段指定zerofill是有用，tinyint(4)会在左边补0，但前提是需要去指定zerofill。
        // 以下将除tinyint(1)的其他tinyint映射为Integer
        this.typeMap.put(-6, new JavaTypeResolverDefaultImpl.JdbcTypeInformation("TINYINT", new FullyQualifiedJavaType(Integer.class.getName())));

    }
}